// Ionic Starter App

// angular.module is a global place for creating, registering and retrieving Angular modules
// 'starter' is the name of this angular module example (also set in a <body> attribute in index.html)
// the 2nd parameter is an array of 'requires'
// 'starter.services' is found in services.js
// 'starter.controllers' is found in controllers.js
angular.module('starter', ['ionic', 'starter.directives', 'starter.controllers', 'starter.services'])

.run(['$ionicPlatform', function($ionicPlatform) {
    $ionicPlatform.ready(function() {
        // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
        // for form inputs)
        if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
            cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
            cordova.plugins.Keyboard.disableScroll(true);

        }
        if (window.StatusBar) {
            // org.apache.cordova.statusbar required
            StatusBar.styleDefault();
        }
    });
}])

.config([
    '$ionicConfigProvider', '$httpProvider',
    function($ionicConfigProvider, $httpProvider) {
        $ionicConfigProvider.setPlatformConfig('android', {});
        $ionicConfigProvider.views.transition('none');
        $ionicConfigProvider.views.swipeBackEnabled(false);
    }
])

.config(['$stateProvider', '$urlRouterProvider',function($stateProvider, $urlRouterProvider) {

    // Ionic uses AngularUI Router which uses the concept of states
    // Learn more here: https://github.com/angular-ui/ui-router
    // Set up the various states which the app can be in.
    // Each state's controller can be found in controllers.js
    $stateProvider

    // setup an abstract state for the tabs directive
        .state('tab', {
        url: '/tab',
        abstract: true,
        templateUrl: 'templates/tabs.html'
    })

    // Each tab has its own nav history stack:

    .state('tab.home', {
        url: '/home',
        views: {
            'tab-home': {
                prefetchTemplate: false,
                templateUrl: 'templates/tab-home.html',
                controller: 'HomeCtrl'
            }
        }
    })

    .state('tab.ranking', {
        url: '/ranking',
        views: {
            'tab-ranking': {
                prefetchTemplate: false,
                templateUrl: 'templates/tab-ranking.html',
                controller: 'RankingCtrl'
            }
        }
    })

    .state('tab.report', {
        url: '/report',
        views: {
            'tab-report': {
                prefetchTemplate: false,
                templateUrl: 'templates/tab-report.html',
                controller: 'ReportCtrl'
            }
        }
    })

    .state('tab.mine', {
        url: '/mine',
        views: {
            'tab-mine': {
                prefetchTemplate: false,
                templateUrl: 'templates/tab-mine.html',
                controller: 'MineCtrl'
            }
        }
    });

    // if none of the above states are matched, use this as the fallback
    $urlRouterProvider.otherwise('/tab/home');

}]);
